package com.das.mechanic_webview.contract.ground;


import com.das.mechanic_base.base.X3IBaseView;
import com.das.mechanic_base.bean.ground.CarPropertiesBean;
import com.das.mechanic_base.bean.ground.UserCarInfoBean;
import com.das.mechanic_base.bean.main.AppointClueBean;
import com.das.mechanic_base.bean.main.CarPicAndColorBean;
import com.das.mechanic_base.bean.main.CarSelectBean;
import com.das.mechanic_base.bean.main.GiftBalanceBean;
import com.das.mechanic_base.bean.main.HomeMainCarBean;

import java.io.File;
import java.util.List;
import java.util.Map;

public interface X3GroundPushContract {

    interface View extends X3IBaseView {

        /**
         * 获取我的全部车辆
         */
        void getMyCarList(List<UserCarInfoBean> carInfoBeans, long carOwnerId);

        /**
         * 预约到店成功
         */
        void saveAppointClueSuccess();

        /**
         * 失败
         */
        void getError();

        /**
         * 赠送余额-赠送前
         * @param giftBalanceBean
         */
        void getCreditPresentInfoView(GiftBalanceBean giftBalanceBean);

        void getCarNum(String carNum);

        void getVin(String vin);

        /**
         * 获取车辆json数据
         */
        void getCarForMechanic(CarPropertiesBean propertiesBean, long carId);

        /**
         * 下载成功
         */
        void downSuccess();

        /**
         * 保存进厂油量成功
         */
        void saveOilSuccess();

        /**
         * 根据接车单id获取接车单数据
         *
         * @param mainCarBean
         */
        void getReceiveBase(HomeMainCarBean mainCarBean);

        /**
         * 更新车型数据成功
         */
        void updateCarTypeSuccess();

        /**
         * 请求缩略图成功
         * @param picList
         */
        void downCarPicSuccess(List<CarPicAndColorBean> picList, String carNum, long colorId, long carPicTempletId);

        void uploadCarPicSuccess(CarPicAndColorBean colorBean);

        /**
         * 保存留言成功
         */
        void saveCommunSuccess();
    }

    interface Presenter {
        /**
         * 查看当前车主全部车辆
         * @param carOwnUserId
         */
        void getCarList(long carOwnUserId);

        /**
         * 预约到店
         * @param clueBean
         */
        void saveAppointClue(AppointClueBean clueBean);

        /**
         * 赠送余额-赠送前
         * @param carOwnerUserId
         */
        void getCreditPresentInfo(long carOwnerUserId);

        void requestCarNum(File carNum);

        void requestVin(File carVin);

        /**
         * 请求车辆json数据
         * @param carId
         */
        void getCarMechanic(long carId);

        /**
         * 下载json文件
         * @param jsonUrl
         * @param jsonPath
         */
        void downloadDropFile(String jsonUrl, String jsonPath);

        /**
         * 下载json的图片
         * @param imagePath
         * @param imageUrl
         * @param imageName
         */
        void downCarJsonImageUrl(String imagePath,String imageUrl,String imageName);

        void downCarImageUrl(String imagePath, String carUrl, String imageName);

        void saveOrUpdateOil(String selectData,long receiveId);

        /**
         * 根据接车单id获取车辆数据
         */
        void getReceiveBase(long receiveId);

        /**
         * 更新接车单 车辆信息
         *
         * @param selectBean
         * @param carNum
         */
        void updateReceiveCar(CarSelectBean selectBean, String carNum);

        /**
         * 请求缩略图
         * @param map
         */
        void showCarPicAndColor(Map<String,Object> map,String carNum,long colorId,long carPicTempletId);

        /**
         * 上传车辆切割图
         */
        void uploadCarPic(long carId,String imgPath,String carNum);

        /**
         * 保存留言
         * @param id
         */
        void saveCommun(long id,String content);
    }
}
